package PruebasUnitarias;

import junit.framework.TestCase;
import Modelo.*;

public class CongelamientoTest extends TestCase {
	
	private Bloque[][] bloques;
	private Mapa mapa;
	
	protected void setUp() throws Exception {
		super.setUp();
		mapa= new Mapa(); 
		bloques= new Bloque[3][3];
		
		for(int i=0;i<3;i++)
			for(int j=0;j<3;j++)
				bloques[i][j]= new Vacio(mapa);
		bloques[0][0]=new NaveEspacial(mapa);
		bloques[1][2]=new NaveEspacialLlegada(mapa);
		mapa.inicializarMapa(bloques);
	}
	
	public void testEsEjecutableSobre(){
		PoseedorDeHabilidad pooglin = new Pooglin(mapa);
		Habilidad congelamiento=new Congelamiento();
		pooglin.asignarHabilidad(congelamiento);
		pooglin.caminar();
		assertTrue(congelamiento.esEjecutableSobre(pooglin));
		pooglin.caer();
		assertFalse(congelamiento.esEjecutableSobre(pooglin));
	}	
	
	public void testEjecutarSobre(){
		PoseedorDeHabilidad pooglin = new Pooglin(mapa);
		Habilidad congelamiento=new Congelamiento();
		pooglin.asignarHabilidad(congelamiento);
		bloques[1][1].alojar(pooglin);
		congelamiento.ejecutarSobre(pooglin);
		assertFalse(pooglin.estaVivo());
		assertFalse(bloques[1][1] instanceof Vacio);
		assertTrue(bloques[1][1] instanceof Hielo);
	}	
}
